package cn.com.yx.ms.service;


import cn.com.yx.ms.application.web.ApiQueryBase;
import cn.com.yx.ms.domain.dbmodel.GgMain;
import cn.com.yx.ms.domain.gg.GgMainModel;
import cn.com.yx.ms.domain.mq.MqPushNoticeModel;
import cn.com.yx.ms.domain.program.CatalogModel;
import cn.yx.framework.view.ApiResult;

import java.util.List;

/**
 * 公告管理
 */
public interface IGgService {

    //region << 公告目录 >>

    /**
     * 公告目录保存或更新操作方法
     *
     * @param catalogModel
     * @return
     */
    ApiResult saveGgCatalog(CatalogModel catalogModel);

    /**
     * 新增公告目录
     *
     * @param catalogModel
     * @return
     */
    int insertGgCatalog(CatalogModel catalogModel);

    /**
     * 删除公告目录
     *
     * @param id
     * @return
     */
    ApiResult deleteGgCatalog(String id);


    /**
     * 修改公告目录
     *
     * @param catalogModel
     * @return
     */
    int updateGgCatalog(CatalogModel catalogModel);

    /**
     * 查询素材目录
     *
     * @param apiQueryBase
     * @return
     */
    List<CatalogModel> findGgCatalogs(ApiQueryBase apiQueryBase);

    /**
     * 获取单个素材对象
     *
     * @param id
     * @return
     */
    CatalogModel findGgCatalog(String id);

    //endregion

    // region << 公告管理 >>

    /**
     * 公告保存或更新操作方法
     *
     * @param ggMainModel
     * @return
     */
    ApiResult saveGgMain(GgMainModel ggMainModel);

    /**
     * 新增公告
     *
     * @param ggMainModel
     * @return
     */
    int insertGgMain(GgMainModel ggMainModel);

    /**
     * 删除公告
     *
     * @param id
     * @return
     */
    int deleteGgMain(String id);

    /**
     * 修改公告
     *
     * @param ggMainModel
     * @return
     */
    int updateGgMain(GgMainModel ggMainModel);

    /**
     * 查询公告
     *
     * @param apiQueryBase
     * @return
     */
    List<GgMain> findGgMains(ApiQueryBase apiQueryBase);

    List<GgMain> findGgByEquipmentNo(String equipmentNo);

    /**
     * 获取单个公告对象
     *
     * @param id
     * @return
     */
    GgMainModel findGgMain(String id);

    void saveDevGgMap(MqPushNoticeModel mqPushNoticeModel);

    // endregion
}